package outputstream01;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * FileOutputStream类:
 *   构造方法
 *     FileOutputStream(String name)
 *           name:传入一个文件路径
 *           1.如果传入的文件路径在硬盘不存在,那么该构造方法会抛出java.io.FileNotFoundException
 *           2.如果传入的文件路径在硬盘存在而且该路径下没有该文件,那么该构造方法会为我们创建一个空白文件
 *           3.如果传入的文件路径在硬盘存在但是该路径下已有该文件,那么该构造方法会清空该文件内容
 *
 *           创建一个向具有指定名称的文件中写入数据的输出文件流。
 *   成员方法:
 *    void write(int b)
 *              将指定字节写入此文件输出流。
 *    void close()
 *  *           关闭此文件输出流并释放与此流有关的所有系统资源。
 * 通过FileOutputStream向文件中写内容的步骤:
 *   1.通过输出流关联一个文件1.txt
 *   2.通过write方法向1.txt中写字节
 *   3.关流释放资源
 *   注意:写动作一定是在close之前,因为close关流后,底层IO资源已经释放,无法在使用
 *
 */
public class FileOutputStream01 {
	public static void main(String[] args) throws IOException {
		//method01();
		//method02();
		//method03();
		FileOutputStream fos = new FileOutputStream("day23/1.txt");
		fos.close();
		fos.write(49);//java.io.IOException: Stream Closed
		fos.write(48);
		fos.write(48);
	}

	private static void method03() throws IOException {
		//向文件中写入内容100
		FileOutputStream fos = new FileOutputStream("day23/1.txt");

		fos.write(49);
		fos.write(48);
		fos.write(48);

		fos.close();
	}

	private static void method02() throws IOException {
		FileOutputStream fos = new FileOutputStream("day23/1.txt");

		fos.write(97);
		fos.write(65);
		fos.write(98);

		fos.close();
	}

	private static void method01() throws IOException {
		//FileOutputStream fos = new FileOutputStream("day23/1.txt");
		//FileOutputStream fos = new FileOutputStream("M:/day23/1.txt");//java.io.FileNotFoundException: M:\day23\1.txt (系统找不到指定的路径。)
		FileOutputStream fos = new FileOutputStream("day23/1.txt");

		fos.write(97);

		fos.close();
	}
}
